package com.liuya.db.orm;

import com.liuya.common.exception.EntityExistException;
import com.liuya.db.DBLevelException;

import java.sql.Connection;
import java.util.Collection;

/**
 * Save entity operation to database.
 */
public interface TableSaver {
	/**
	 * Table definition.
	 * 
	 * @param mapping
	 */
	public void setTable(Table mapping);

	public void save(Object o) throws EntityExistException, DBLevelException;

	public int[] batchSave(Object[] os) throws DBLevelException;

	public Collection batchSave(Collection coll) throws DBLevelException;

	public void save(Connection conn, Object o) throws EntityExistException, DBLevelException;

	public int[] batchSave(Connection conn, Object[] os) throws DBLevelException;

	public Collection batchSave(Connection conn, Collection coll) throws DBLevelException;
}
